import { defineConfig } from "vite";
import postcss from "rollup-plugin-postcss";
import { glob } from "glob"; // 需安装 glob
import path from "path";
import fs from "fs";

// 自动扫描所有 CSS/SCSS/Vue 文件
const styleFiles = glob.sync(["src/**/*.{css,scss,vue}"]);

export default defineConfig({
  build: {
    rollupOptions: {
      input: styleFiles, // 直接以样式文件为入口
      output: {
        entryFileNames: "[name].js", // 虚拟文件名（实际不生成 JS）
        assetFileNames: "[name].[ext]", // 控制 CSS 输出路径
        // 完全禁用 JS 文件生成
        manualChunks: () => "ignore.js", // 避免分块
      },
    },
  },
  plugins: [
    postcss({
      extract: true, // 提取 CSS 到独立文件
      minimize: true, // 压缩
      include: /\.(css|scss|vue)$/, // 处理 .vue 文件的 <style>
      output: (styles) => {
        const fs = require("fs");
        const path = require("path");
        const outDir = path.resolve(__dirname, "lib");
        if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
        fs.writeFileSync(path.join(outDir, "style.css"), styles); // 写入共享 CSS
      },
    }),
  ],
});
